Haptic feedback generation based on resonant frequency

ABSTRACT

A system that generates a haptic effect generates a drive cycle signal that includes a drive period and a monitoring period. The drive period includes a plurality of drive pulses that are based on the haptic effect. The system applies the drive pulses to a resonant actuator during the drive period and receives a signal from the resonant actuator that corresponds to the position of a mass in the actuator during the monitoring period.

FIELD OF THE INVENTION

One embodiment is directed generally to a user interface for a device,and in particular to generating haptic feedback for the user interface.

BACKGROUND INFORMATION

Electronic device manufacturers strive to produce a rich interface forusers. Conventional devices use visual and auditory cues to providefeedback to a user. In some interface devices, kinesthetic feedback(such as active and resistive force feedback) and/or tactile feedback(such as vibration, texture, and heat) is also provided to the user,more generally known collectively as “haptic feedback” or “hapticeffects”. Haptic feedback can provide cues that enhance and simplify theuser interface. Specifically, vibration effects, or vibrotactile hapticeffects, may be useful in providing cues to users of electronic devicesto alert the user to specific events, or provide realistic feedback tocreate greater sensory immersion within a simulated or virtualenvironment.

In order to generate vibration effects, many devices utilize some typeof actuator. Known actuators used for this purpose include anelectromagnetic actuator such as an Eccentric Rotating Mass (“ERM”) inwhich an eccentric mass is moved by a motor, a Linear Resonant Actuator(“LRA”) in which a mass attached to a spring is driven back and forth,or a “smart material” such as piezoelectric, electro-active polymers orshape memory alloys. Many of these actuators, and the devices that theyinteract with, have built-in resonant frequencies that optimally aredynamically determined and controlled so that drive signals thatgenerate the haptic effects can be most effective and efficient.

SUMMARY OF THE INVENTION

One embodiment is a system that generates a haptic effect. The systemgenerates a drive cycle signal that includes a drive period and amonitoring period. The drive period includes a plurality of drive pulsesthat are based on the haptic effect. The system applies the drive pulsesto a resonant actuator during the drive period and receives a signalfrom the resonant actuator that corresponds to the position of a mass inthe actuator during the monitoring period.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of a haptically-enabled system in accordancewith one embodiment.

FIG. 2 is a cut-away side view of an LRA in accordance to oneembodiment.

FIG. 3 is a flow diagram of the functionality of a module in conjunctionwith a processor and an actuator drive circuit when driving LRA togenerate haptic feedback accordance with one embodiment.

FIG. 4 is a block diagram of a circuit for generating the functionalityof FIG. 3 for driving the LRA in accordance with one embodiment.

FIG. 5 is a graph that illustrates an example of a portion of a drivecycle that includes a drive period and a monitoring period.

FIG. 6 is a flow diagram of the functionality of a module in conjunctionwith a processor and an actuator drive circuit when driving LRA togenerate haptic feedback accordance with one embodiment.

DETAILED DESCRIPTION

One embodiment is a system that drives an LRA to generate vibrotactilehaptic feedback on a user interface or other area of a device. Thesystem drives the LRA so that the resonant frequency of the LRA can bedetermined during a drive period and the drive signal can be adjusted tomaximize the haptic feedback based on the determined resonant frequency

FIG. 1 is a block diagram of a haptically-enabled system 10 inaccordance with one embodiment. System 10 includes a touch sensitivesurface 11 or other type of user interface mounted within a housing 15,and may include mechanical keys/buttons 13. Internal to system 10 is ahaptic feedback system that generates vibrations on system 10. In oneembodiment, the vibrations are generated on touch surface 11.

The haptic feedback system includes a processor 12. Coupled to processor12 is a memory 20 and an actuator drive circuit 16, which is coupled toan LRA actuator 18. Processor 12 may be any type of general purposeprocessor, or could be a processor specifically designed to providehaptic effects, such as an application-specific integrated circuit(“ASIC”). Processor 12 may be the same processor that operates theentire system 10, or may be a separate processor. Processor 12 candecide what haptic effects are to be played and the order in which theeffects are played based on high level parameters. In general, the highlevel parameters that define a particular haptic effect includemagnitude, frequency and duration. Low level parameters such asstreaming motor commands could also be used to determine a particularhaptic effect. A haptic effect may be considered “dynamic” if itincludes some variation of these parameters when the haptic effect isgenerated or a variation of these parameters based on a user'sinteraction.

Processor 12 outputs the control signals to drive circuit 16 whichincludes electronic components and circuitry used to supply LRA 18 withthe required electrical current and voltage to cause the desired hapticeffects. System 10 may include more than one LRA 18, and each LRA mayinclude a separate drive circuit 16, all coupled to a common processor12. Memory device 20 can be any type of storage device orcomputer-readable medium, such as random access memory (“RAM”) orread-only memory (“ROM”). Memory 20 stores instructions executed byprocessor 12. Among the instructions, memory 20 includes an LRA Drivewith Resonant Frequency Determination module 22 which are instructionsthat, when executed by processor 12, generate drive signals for LRA 18while also determining the resonant frequency of LRA 18 and adjustingthe drive signals accordingly. The functionality of module 22 isdiscussed in more detail below. Memory 20 may also be located internalto processor 12, or any combination of internal and external memory.

Touch surface 11 recognizes touches, and may also recognize the positionand magnitude of touches on the surface. The data corresponding to thetouches is sent to processor 12, or another processor within system 10,and processor 12 interprets the touches and in response generates hapticeffect signals. Touch surface 11 may sense touches using any sensingtechnology, including capacitive sensing, resistive sensing, surfaceacoustic wave sensing, pressure sensing, optical sensing, etc. Touchsurface 11 may sense multi-touch contacts and may be capable ofdistinguishing multiple touches that occur at the same time. Touchsurface 11 may be a touchscreen that generates and displays images forthe user to interact with, such as keys, dials, etc., or may be atouchpad with minimal or no images.

System 10 may be a handheld device, such as a cellular telephone, PDA,computer tablet, etc. or may be any other type of device that provides auser interface and includes a haptic effect system that includes one ormore LRAs. The user interface may be a touch sensitive surface, or canbe any other type of user interface such as a mouse, touchpad,mini-joystick, scroll wheel, trackball, game pads or game controllers,etc. In embodiments with more than one LRA, each LRA may have adifferent resonant frequency in order to create a wide range of hapticeffects on the device. Each LRA may be any type of resonant actuator.

FIG. 2 is a cut-away side view of LRA 18 in accordance to oneembodiment. LRA 18 includes a casing 25, a magnet/mass 27, a linearspring 26, and an electric coil 28. Magnet 27 is mounted to casing 25 byspring 26. Coil 28 is mounted directly on the bottom of casing 25underneath magnet 27. LRA 18 is typical of any known LRA. In operation,when current flows thru coil 28 a magnetic field forms around coil 28which in interaction with the magnetic field of magnet 27 pushes orpulls on magnet 27. One current flow direction/polarity causes a pushaction and the other a pull action. Spring 26 controls the up and downmovement of magnet 27 and has a deflected up position where it iscompressed, a deflected down position where it is expanded, and aneutral or zero-crossing position where it is neither compressed ordeflected and which is equal to its resting state when no current isbeing applied to coil 28 and there is no movement/oscillation of magnet27.

For LRA 18, a mechanical quality factor or “Q factor” can be measured.In general, the mechanical Q factor is a dimensionless parameter thatcompares a time constant for decay of an oscillating physical system'samplitude to its oscillation period. The mechanical Q factor issignificantly affected by mounting variations. The mechanical Q factorrepresents the ratio of the energy circulated between the mass andspring over the energy lost at every oscillation cycle. A low Q factormeans that a large portion of the energy stored in the mass and springis lost at every cycle. In general, a minimum Q factor occurs withsystem 10 is held firmly in a hand due to energy being absorbed by thetissues of the hand. The maximum Q factor generally occurs when system10 is pressed against a hard and heavy surface that reflects all of thevibration energy back into LRA 18.

In direct proportionality to the mechanical Q factor, the forces thatoccur between magnet/mass 27 and spring 26 at resonance are typically10-100 times larger than the force that coil 28 must produce to maintainthe oscillation. Consequently, the resonant frequency of LRA 18 ismostly defined by the mass of magnet 27 and the compliance of spring 26.However, when an LRA is mounted to a floating device (i.e., system 10held softly in a hand), the LRA resonant frequency shifts upsignificantly. Further, significant frequency shifts can occur due toexternal factors affecting the apparent mounting weight of LRA 18 insystem 10, such as a cell phone flipped open/closed or the phone heldtightly. Further, it is difficult using known manufacturing techniquesto manufacture an LRA with a known resonant frequency within a tighttolerance. Therefore, known uses of LRA typically must assume a fixedresonant frequency at all times, which does not take into accountchanging resonant frequency due to different uses of a device or due tomanufacturing tolerances. Since the assumption of the resonant frequencyis typically inaccurate, the subsequent use of the LRA to generatehaptic feedback is typically inefficient and not as effective aspossible.

One embodiment of the present invention constantly and dynamicallydetermines the resonant frequency of LRA 18 while during a monitoringperiod of a drive signal cycle. A drive signal cycle includes a driveperiod where drive signal pulses are applied to LRA 18, and a monitoringperiod where the back electromagnetic field (“EMF”) of the moving mass27 is received and used to determine the resonant frequency of the LRA.The drive signal pulses incorporate the desired haptic effect so thatthey are translated by LRA 18 into the haptic effect. In one embodiment,LRA 18 includes a sensing coil, Hall sensor, optical sensor or othertype of sensing device that is located in proximity to mass 27 fordetecting the position of mass 27. In this embodiment, the sensingdevice will provide a sensed position signal that can be used as themonitoring signal to provide information about the position of the mass27 instead of the back EMF signal generated by the mass and drive coilof the LRA itself.

FIG. 3 is a flow diagram of the functionality of module 22 inconjunction with processor 12 and actuator drive circuit 16 when drivingLRA 18 to generate haptic feedback. The functionality of FIG. 3, andFIG. 6 below, is executed as a continuous loop during a drive cycle thatincludes a drive period and a monitoring period. When the functionalityof FIG. 3 is initially executed, a resonant frequency for LRA 18 isassumed. During the drive period (approximately 90%) of the drive cycle,a drive pulse in the form of a square wave is applied to LRA 18, andduring the monitoring period (approximately 10%) of the drive cycle,drive circuit 16 “listens” or monitors and receives magnetic back EMF(i.e., the voltage generated by the internal motion inside LRA 18) fromLRA 18. In one embodiment, the functionality of the flow diagram of FIG.3 is implemented by software stored in memory or other computer readableor tangible medium, and executed by a processor. In other embodiments,the functionality may be performed by hardware (e.g., through the use ofan application specific integrated circuit (“ASIC”), a programmable gatearray (“PGA”), a field programmable gate array (“FPGA”), etc.), or anycombination of hardware and software.

At 302, at each half crossing of the drive pulse (i.e., when the squarewave pulse goes from positive to negative and vice versa), the zerocrossing time of the LRA back EMF is measured and the polarity status islatched until the end of the drive pulse.

At 304, during each drive cycle, after the end of the last drive pulse(i.e., during the monitoring portion of the drive cycle), the LRAvibration amplitude is measured based on the derivative of the speed ofthe mass (“dv/dt”), which is based on the back EMF. The derivative ofthe speed of the mass provides a measurement of how far the mass willrise above the zero crossing.

At 306, the desired amplitude is compared to the present amplitude asdetermined at 304.

At 308, it is determined if the desired amplitude is greater than thepresent amplitude. Decision block 308 also is provided as input thepolarity status from 302. Based on the decision at 308, functionalityproceeds to forward drive mode at 312 because the amplitude of the massneeds to be increased, or braking mode at 310 because the amplitude ofthe mass needs to be decreased.

At 312, a drive pulse is sent that is synchronized by the zero crossingand in phase with the LRA oscillation. The drive pulse is sized tocancel the difference between the present amplitude and the desiredamplitude.

At 310, a drive pulse is sent that is synchronized by the zero crossingand out of phase with the LRA oscillation. The drive pulse is sized tocancel the difference between the present amplitude and the desiredamplitude.

FIG. 4 is a block diagram of a circuit 400 for generating thefunctionality of FIG. 3 for driving LRA 18 in accordance with oneembodiment. In the embodiment of FIG. 4, the driving signal is generatedprimarily in hardware as opposed to FIG. 3 which can be generated by anycombination of software (via module 22) or hardware.

Circuit 400 is controlled by a “command” signal 410 that is convertedfrom a Pulse-width modulation (“PWM”). When command 410 exceeds astarting threshold and becomes “valid” it initiates a “kick” pulse thatis an initiation of the first drive pulse. If LRA 18 was stopped for anyreason while command 410 was valid a kick pulse would be issued every 10ms.

During a drive cycle, the drive pulse has a duration of approximately2.2 ms generated by pulse duration 408, and it is then followed by anapproximately 100 μs delay generated by drive extension 409 that allowsthe drive pulse to go back to zero. During this 100 μs monitoringperiod, the LRA back EMF is transmitted along monitoring branch 430 toZero Crossing with Offset Null circuit 405. Circuit 405 waits for a zerocrossing. This edge initiates a 200 μs sampling amplitude delay 407 thatwill restart a new pulse. Further, when an edge is detected, thepolarity of the transition is latched in latch 406 for the next pulseand sampling logic.

Circuit 405 includes a comparator and two analog switches. When thepulse driven is active via switch 420, the negative input is connectedback to the output, thereby nulling the offset of the comparator. Offsetnulling is needed in one embodiment because the back EMF amplitude maybe generally low, especially after the first pulse. An excessivelypositive offset would make the detection of the edge too early, therebyincreasing the frequency of the system. However, if the offset wereexcessively negative the edge would never be detected and the pulseswould stop.

Amplitude sampling with offset null circuit 402 includes an operationalamplifier and three analog switches. Circuit 402 measures the differenceof amplitude between the time the zero crossing is detected until theend of the sampling period, which last approximately 200 μs. Circuit 402also nulls the amplifier offset. Offsets increase amplitude errors anddecrease the performance at braking.

Dual differential amplifier circuit 404 includes an operationalamplifier and double pole, double throw (“DPDT”) analog switch.Depending on the polarity, the amplitude of the MIX-OUT signal 403 issubtracted from command 410. The result is sent to a pulse shapingcircuit.

The pulse shaping circuit includes an analog switch 420 for shaping thepulse and a filter 421 to smooth the pulse and reduce the high frequencycontent to avoid excessive audio noise. The filtered pulse is thenconverted to current by current generator 422.

Driving a current allows for a compensation in a change in impedancevariation that would affect the response, in particular at the end ofbraking. Switch 420 is also used to switch from the drive period (switchis closed) to the monitoring period (switch is open).

FIG. 5 is a graph that illustrates an example of a portion of a drivecycle that includes a drive period and a monitoring period. A commandsignal 502 (which corresponds to command signal 410 of FIG. 4)transitions between periods 510 and 520. A drive signal 504 is a squarewave that is active during drive pulse periods 510 and 520, and inactiveduring monitoring period 530. Drive signal 504 is applied to LRA 18 ofFIG. 4. An output signal 506 gradually is reduced in amplitude but isstill active during monitoring period 530 due to the back EMF generatedby the moving mass of LRA 18. Output signal 506 is what is transmittedalong monitoring branch 430 of FIG. 4.

FIG. 6 is a flow diagram of the functionality of module 22 inconjunction with processor 12 and actuator drive circuit 16 when drivingLRA 18 to generate haptic feedback in accordance with one embodiment.

As disclosed, the drive circuit in accordance with one embodimentgenerates haptic feedback with an LRA by including a monitoring periodwhere the resonant frequency of the LRA is determined. The subsequentdrive pulses are then adjusted to account for the resonant frequency.

Several embodiments are specifically illustrated and/or describedherein. However, it will be appreciated that modifications andvariations of the disclosed embodiments are covered by the aboveteachings and within the purview of the appended claims withoutdeparting from the spirit and intended scope of the invention.

1. A method of generating a haptic effect comprising: generating a drivecycle signal that comprises a drive period and a monitoring period,wherein the drive period comprises a plurality of drive pulses that arebased on the haptic effect; applying the drive pulses to a resonantactuator during the drive period, wherein the resonant actuatorcomprises a mass; and receiving a signal that comprises a position ofthe mass from the resonant actuator during the monitoring period.
 2. Themethod of claim 1, further comprising: modifying an amplitude of one ofthe drive pulses in response to the signal.
 3. The method of claim 2,wherein the signal is a back electromagnetic field (EMF).
 4. The methodof claim 3, wherein the amplitude is modified based on a derivative ofthe back EMF.
 5. The method of claim 2, wherein the drive pulse is outof phase with a resonant actuator oscillation.
 6. The method of claim 2,wherein the drive pulse is in phase with a resonant actuatoroscillation.
 7. The method of claim 1, further comprising: determining aresonant frequency of the resonant actuator during the monitoringperiod.
 8. The method of claim 1, wherein the haptic effect is avibrotactile haptic effect.
 9. The method of claim 1, wherein theresonant actuator is a linear resonant actuator.
 10. The method of claim1, wherein the signal is generated by a sense coil in proximity to themass.
 11. A haptic effect enabled system comprising: a resonant actuatorthat comprises a mass; circuitry coupled to the resonant actuator,wherein the circuitry is adapted to generate a drive cycle signal thatcomprises a drive period and a monitoring period, wherein the driveperiod comprises a plurality of drive pulses that are based on a hapticeffect; wherein the circuitry is adapted to apply the drive pulses to aresonant actuator during the drive period, and receive a signal thatcomprises a position of the mass from the resonant actuator during themonitoring period.
 12. The system of claim 11, the circuitry furtheradapted to modify an amplitude of one of the drive pulses in response tothe signal.
 13. The system of claim 12, wherein the signal is a backelectromagnetic field (EMF).
 14. The system of claim 13, wherein theamplitude is modified based on a derivative of the back EMF.
 15. Thesystem of claim 12, wherein the drive pulse is out of phase with aresonant actuator oscillation.
 16. The system of claim 12, wherein thedrive pulse is in phase with a resonant actuator oscillation.
 17. Thesystem of claim 11, the circuitry further adapted to determine aresonant frequency of the resonant actuator during the monitoringperiod.
 18. The system of claim 11, wherein the haptic effect is avibrotactile haptic effect.
 19. The system of claim 11, wherein theresonant actuator is a linear resonant actuator.
 20. The system of claim11, wherein the signal is generated by a sense coil in proximity to themass.
 21. The system of claim 11, wherein the circuitry comprises aprocessor and instructions stored on a computer readable media.
 22. Asystem for generating a haptic effect comprising: means for generating adrive cycle signal that comprises a drive period and a monitoringperiod, wherein the drive period comprises a plurality of drive pulsesthat are based on the haptic effect; means for applying the drive pulsesto a resonant actuator during the drive period, wherein the resonantactuator comprises a mass; and means for receiving a signal thatcomprises a position of the mass from the resonant actuator during themonitoring period.
 23. A computer readable media having instructionsstored thereon that, when executed by a processor, causes the processorto generate a haptic effect, the instructions comprising: generating adrive cycle signal that comprises a drive period and a monitoringperiod, wherein the drive period comprises a plurality of drive pulsesthat are based on the haptic effect; applying the drive pulses to aresonant actuator during the drive period, wherein the resonant actuatorcomprises a mass; and receiving a signal that comprises a position ofthe mass from the resonant actuator during the monitoring period. 24.The computer readable media of claim 23, the instructions furthercomprising: modifying an amplitude of one of the drive pulses inresponse to the signal.
 25. The computer readable media of claim 23,wherein the signal is a back electromagnetic field (EMF).